# 配置全局账号信息
git config --global user.name "steveouyang"
git config --global user.email "284577461@qq.com"
git confit --list

# 初始化本地仓库
cd mypro
git init

# 将远程仓库克隆到本地
# 手动创建远程仓库
# 克隆远程代码仓库到本地仓库
git clone https://gitee.com/steveouyang/test2113.git

# 将文件添加到【暂存区】
git add ./index.html
# 将全部文件和文件夹添加到【暂存区】
git add .

# 查看哪些修改还未提交
git status

# 将暂存区中的内容提交到本地仓库
git commit -m "首次提交"

# 首次推送远程
# 添加远程源
git remote add origin https://gitee.com/steveouyang/test2113.git
# 将本地仓库master分支推送远程
# 首次推送前 需要先将远程仓库信息拉取到本地 实现首次同步
git pull origin master --allow-unrelated-histories
# [ 拉取完毕后解决一下可能的冲突 ]
# 将本地仓库中的内容推送到远程的master分支
git push -u origin master

# 拉取远程仓库信息 与工作目录中的当前分支自动合并
# ！！！可能会暴力覆盖【未提交的本地修改】
# ！！！拉取合并之前一定记得先提交本地修改（否则没有后悔药可吃）
# git pull = git fetch + git merge
git pull
# 将远程仓库的最新信息 同步到本地仓库 但不与工作目录自动合并（安全）
git fetch
# 将别的分支（origin/master）与自己合并
git merge origin/master



# ==================================================
# 分支操作
# 基于当前分支 创建名为feat1-login的新分支（用于开发登录特性）
git branch feat1-login

# 查看本地的所有分支
git branch
git branch -r

# 切换到新分支
git checkout feat1-login

# 创建并切换到dev分支
# master-dev-test-(feat1-xxx,feat2-xxx,...)(fixbug-xxx,)
git checkout -b dev

# 删除分支（要事先切换(checkout)到别的分支）
git branch -D shit

# 
git checkout -b feat1-merge-dev
git merge dev
git checkout dev
git merge feat1-login
# ==================================================



# ==================================================
git log

# 消灭历史记录的硬回退（永远回去并且回不来了）
git reset --hard 12abc34
git reset --hard HEAD
# 回到过去（并且还能回得来）
git revert 499c459f292e
# ==================================================